package com.cloudlead.common.worker.action;

import com.cloudlead.common.lang.api.ActionRequest;
import com.cloudlead.common.lang.api.ActionResponse;

/**
 * 所有动作的接口
 *
 * @param <Request>  请求
 * @param <Response> 响应
 * @author dean.lu
 */
public interface Action<Request extends ActionRequest, Response extends ActionResponse> {

    /**
     * 同步处理请求，业务需要实现该方法
     *
     * @param request 请求
     * @return 响应
     */
    Response execute(Request request) throws Exception;

}
